//引入外部api
import * as api from "@/api/index"

export default {
    //开启命名空间
    namespaced: true,
    state:{
        //定义product中的数据容器
        products:[]
    },
    mutations:{
       //定义渲染state的函数
       SETREQUESTDATA(state,payload){
           //将actions传过来的payload赋给stateproduct
           state.products = payload;
       },
       //对库进行一个减少
       //inventory
       //对库存进行减少

       SETINVENTORY(state,payload){
           //需要知道让那一条数据的库存减少
           let target =state.products.find(item=>item.id === payload);
           if(target){
             target.inventory--
           }
       },
       //让库存增加回来
       INCREASE_INVENTORY(state,payload){
          //通过payload的id找到product
          //对应的数据
          //当数据变为0的时候我们就干掉页面的按钮
           let target = state.products.find(item => item.id === payload.id);
           if(target){
              target.inventory++
           }
          
       }
    },
    getters:{},
    actions:{
        //请求product组件中数据
        async REQUSETDATE(context){
          //调用api中的fetchProduct函数请求后端数据
            let res = await api.fetchProduct();
           context.commit("SETREQUESTDATA",res.data);
        }
    },
    modules:{}
}